/**
 * @(#)InstantiationTracingBeanPostProcessor.java
 * @author arkor
 * 版本历史
 * -------------------------------------------------------------------------
 * 时间 作者 内容
 * -------------------------------------------------------------------------
 * 2015年8月20日 arkor 创建版本
 */
package com.arkup.system.init;

import org.apache.log4j.Logger;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;

import javax.annotation.Resource;
import java.io.File;
import java.util.List;

/**
 * spring 完成启动后 执行操作（更新数据）
 *
 * @author arkor
 */
public class InstantiationTracingBeanPostProcessor implements ApplicationListener<ContextRefreshedEvent> {
    private static final Logger logger = Logger.getLogger(InstantiationTracingBeanPostProcessor.class);


    @Override
    public void onApplicationEvent(ContextRefreshedEvent arg0) {
        if (arg0.getApplicationContext().getParent() == null) {
            //启动时执行更新数据库方法
            doUpdateDB();
            //启动时执行定时任务方法
            doScheduleJob();
        }
    }

    /**
     * 启动时执行更新数据库方法
     *
     * @param
     * @return void
     * @throws
     * @author zhanghonghui
     * @date Sep 08, 2018
     */
    private void doUpdateDB() {
        try {
            //执行更新数据库方法
        } catch (Exception ex) {
            ex.printStackTrace();
            logger.error("启动时执行更新数据库方法失败", ex);
        }
    }

    /**
     * 启动时执行定时任务方法
     *
     * @param
     * @return void
     * @throws
     * @author zhanghonghui
     * @date Sep 08, 2018
     */
    private void doScheduleJob() {
        try {
        } catch (Exception ex) {
            logger.error("启动时执行定时任务方法失败", ex);
        }
    }

}

